const mongoose = require('mongoose')

// 创建与集合(users)相关的schema对象
// let userSchema = mongoose.Schema({
//         user: { type: String, required: true },
//         pass: { type: String, required: true },
//         email: { type: String, required: true }
//     })

// {
//     userId: 00001,
//     user: "zhangsan",
//     email: "2285616100@qq.com",
//     mobile: "15539105987",
//     password: 123456,
//     headIcon: "https://scpic.chinaz.net/Files/pic/icons128/8081/y2.png",
//     gender: 0,
// }

// ******************************************************************
// 登录验证
const usersSchema = new mongoose.Schema({
    // userId: {
    //     type: Number,
    //     required: true,
    // },
    user: { type: String, required: true },
    email: { type: String, required: true },
    mobile: {
        type: String,
        required: true,
        // 支持数据的修饰方法：get和set
        // get：获取数据的时候的数据处理方法
        // set：写入数据的时候数据的处理方法
        get: (val) => {
            // val是指从数据库中取出的原始的值
            // return返回的是处理好的值
            return val.replace(/(\d{3})\d{4}(\d{4})$/, "$1****$2");
        },
    },
    password: {
        type: String,
        required: true,
    },
    // headIcon: String,
    // gender: Number,
});

// 3产生模型
// 第三参数为可选参数，表示model操作的表/集合名。如果不写第三个参数，则默认为第一参数小写的复数形式

// ******************************************************************

// 创建与集合相关的数据模型
let User = mongoose.model('Users', usersSchema, "users")
    // const Model = mongoose.model("Users", usersSchema, "users");
    //  之后我们操作数据库都是使用 User 数据模型来进行增删改查
    // 注意：调用数据模型的各种方法，这些方法执行后返回promise对象

module.exports = User